GNU Make & Makefile برای ساخت پروژه های C/C++ (LINUX,MAC)[2024]

GNU Make & Makefile To Build C/C++ Projects(LINUX,MAC)[2024]

نکته: آخرین آپدیت رو دریافت میکنید حتی اگر این محتوا بروز نباشد.
نمونه ویدیوها:
توضیحات دوره: اطلاعات داخلی فرآیند ساخت را برای نوشتن فایل بهتر برای پروژه های C/C++ در سیستم عامل لینوکس مک بدانید. ساخت برنامه C/C++ با استفاده از Makefile به عنوان یک توسعه دهنده C/C++ آنچه باید در مورد makefile بدانیم! آیا Makefile دشوار است؟ نه نه نه. ما آن را ساده می کنیم. ما بر این تمرکز خواهیم کرد که چگونه می توانیم به راحتی در Makefile کار کنیم. انجام پروژه در اینجا، بنابراین مفهوم شما پاک خواهد شد. شما این دوره را به عنوان یک راهنمای عملی برای Makefile احساس خواهید کرد. پیش نیازها: سیستم عامل لینوکس یا مک باید دانش پایه در C یا C++ داشته باشد. بهتر است بدانید فایل های اجرایی باینری، شی اشتراکی (.so)، کتابخانه ایستا (.a) چیست.

با درک آنچه در پشت صحنه (ایجاد فایل‌های میانی) در حین ساختن برنامه‌های C/C++ در پشت صحنه اتفاق می‌افتد، فایل را بهتر بنویسید. ما با استفاده از یک مثال زمان واقعی ("Creation Of Egg Omelet") می‌فهمیم.

ما قرار است 2 پروژه را در طول فرآیند یادگیری makefile انجام دهیم.

پروژه شماره 1: بدون دانستن/به خاطر سپردن بسیاری از چیزها، می‌توانید یک makefile برای تولید شیء باینری، اشتراک‌گذاری شده (.so)، شیء ثابت (.a) بنویسید و همچنین ترفندی برای پیوند دادن از هر جایی دریافت کنید. پس از اتمام این پروژه، ایده makefile پاک خواهد شد. ما پس از تکمیل این پروژه در حال ایجاد یک الگوی makefile هستیم که به راحتی در هر پروژه ای قابل استفاده است.

PROJECT#2: در طول اجرای این پروژه، ما با اعمال الگوها، توابع، فایل میک و قالب خود را که در پروژه شماره 1 ایجاد شده است، بهبود خواهیم داد.

در هر مرحله با مشکلی مواجه می شویم و سپس راه حل را اعمال می کنیم.


ما با ایجاد ساختار پوشه PROJECT (این را می توان در پروژه های بلادرنگ استفاده کرد) پس از درک تمام خروجی های ممکن یک برنامه C/C++ شروع می کنیم. سپس به مسائل فنی بیشتری در برنامه نویسی برمی خوریم و سعی می کنیم در این سفر یکی یکی آنها را حل کنیم. ساختار پروژه ما به گونه ای است که فرآیند استقرار بسیار آسان تر می شود.


ما شروع به نوشتن فایل‌های ساده می‌کنیم و همانطور که واقعاً به آن نیاز داریم به بهبود ادامه می‌دهیم! ما تمرینات زیادی را انجام می‌دهیم و با مشکلات زیادی روبرو می‌شویم و همچنین همه چیز را در حال رفع می‌کنیم!

ما می‌خواهیم برای همه خروجی‌های ممکن یک makefile بنویسیم. در این دوره شما همیشه یاد خواهید گرفت که چرا؟؟؟ و چگونه؟؟؟

نیاز واقعی یک مفهوم خاص را به شما نشان خواهم داد و سپس آن را یاد خواهیم گرفت و به کار خواهیم برد.


نکات برجسته:

1. با دانستن حداقل چیزها، فایل را بنویسید.

2. یک Makefile برای فراخوانی همه فایل های makefi

3. Makefile با ویژگی Cross Compilation

4. با در نظر گرفتن DEBUG RELEASE نسخه باینری، فایل را در نظر بگیرید.

5. انتقال MACRO از makefile به makefile دیگر

6. متغیرهای محیطی ترمینال را شناسایی کنید و یکی از آن‌ها به ساخت دیگری منتقل می‌شود.

7. ما طراحی سطح بالا (HLD) پروژه ها را مورد بحث قرار خواهیم داد و از این طریق احساس خواهید کرد که نوشتن یک فایل ساخت چقدر آسان است.

8. با کامپایل خط فرمان

راحت تر خواهید بود

9. مسائل مربوط به پیوند اشیاء مشترک و نحوه رفع آن را به طور موقت و دائم درک کنید.

10. پروژه در MAC انجام می شود و در لینوکس کپی می شود. ما مستقیماً یک ساخت واحد انجام می دهیم که همه ماژول ها را makefile فراخوانی می کند و فایل های اجرایی، اشیاء مشترک، اشیاء استاتیک را یکپارچه می سازد. نکته مهم این است که بدون هیچ خطی از تغییر کد برای لینوکس!



سرفصل ها و درس ها

مقدمه و تنظیم محیط Introduction & Environment Setup

  • مقدمه Introduction

  • راه اندازی محیط Environment Setup

پشت صحنه Behind The Scene

  • پشت صحنه چه می گذرد؟ What Is Happening Behind The Scene?

  • درک جزئیات پیش پردازنده Understanding Preprocessor Details

تصمیم گیری در مورد انواع خروجی ها و ایجاد ساختار پوشه Decide Types Of Outputs & Create Folder Structure

  • خروجی های احتمالی برنامه C/C++ POSSIBLE OUTPUTs OF C/C++ PROGRAM

  • ایجاد ساختار پوشه پروژه CREATION OF PROJECT FOLDER STRUCTURE

ساخت و ایجاد فایل Make & Makefile

  • ساخت و ایجاد فایل Make & Makefile

  • ساختار MAKEFILE STRUCTURE OF MAKEFILE

  • REAL WORLD MAKE REAL WORLD MAKE

  • چه کسی تمیز خواهد کرد؟ (هدف ساختگی را درک کنید) WHO WILL CLEAN? (UNDERSTAND PHONY TARGET)

  • اولین میکافیل (نمونه نمایشی مرحله به مرحله) FIRST MAKEFILE(STEP BY STEP DEMO)

  • لغو هدف پیش فرض OVERRIDE DEFAULT TARGET

پروژه شماره 01 PROJECT#01

  • کد منبع و یادداشت ها برای مرجع SOURCE CODE & NOTES FOR REFERENCE

  • درک الزامات با HLD UNDERSTANDING REQUIREMENT WITH HLD

  • MOD-1 IMPLEMENTATION & MAKEFILE MOD-1 IMPLEMENTATION & MAKEFILE

  • MOD1-MAKEFILE UPDATE(01) MOD1-MAKEFILE UPDATE(01)

  • MOD1-MAKEFILE UPDATE(02)-LINKER FLAG MOD1-MAKEFILE UPDATE(02)-LINKER FLAG

  • MOD1-MAKEFILE UPDATE(03)-COMPILER FLAG MOD1-MAKEFILE UPDATE(03)-COMPILER FLAG

  • MOD-1 C++ IMPLEMENTATION MOD-1 C++ IMPLEMENTATION

  • Makefile را به روشی بهتر سازماندهی کنید Organize Makefile In Better Way

  • MOD-2 RQ، DESIGN، IMPLEMENT و CMDLINE CompILATION DEMO MOD-2 RQ, DESIGN, IMPLEMENT & CMDLINE COMPILATION DEMO

  • MOD-2 Makefile(.so) MOD-2 Makefile(.so)

  • دودویی را برای آزمایش تست کنید که آیا قابل استفاده است؟ TEST BINARY TO TEST IF SO IS USABLE?

  • فایل سرصفحه را در مکان مشترک کپی کنید HEADER FILE COPY TO SHARED LOCATION

  • MOD-3 HLD MOD-3 HLD

  • MOD3-IMPLEMENTATION MOD3-IMPLEMENTATION

  • MOD4-DESIGN MOD4-DESIGN

  • MOD4-IMPLEMENTATION MOD4-IMPLEMENTATION

  • MOD 5 HLD MOD 5 HLD

  • کد منبع MOD-5 و Makefile MOD-5 Source code & Makefile

  • بررسی PROJ#01 (5 MODULES RQ) Review PROJ#01(5 MODULES RQ)

ما باید بدانیم! We Must Know!

  • ThingsToRememberForMakefile ThingsToRememberForMakefile

  • عبور ماکرو در طول فرآیند ساخت PASSING MACRO DURING BUILD PROCESS

  • درک نیاز -std UNDERSTAND THE NEED OF -std

  • == در مقابل := == Vs :=

  • دموی هدف ساختگی PHONY TARGET DEMO

قالب Makefile Makefile Template

  • Makefile TEMPLATE-I Makefile TEMPLATE-I

  • Makefile TEMPLATE-II Makefile TEMPLATE-II

  • Makefile TEMPLATE-III Makefile TEMPLATE-III

PROJ#02 (بیایید پروژه نهایی را شروع کنیم - نحوه استفاده از قالب Makefile را یاد بگیرید) PROJ#02(Let's Start Final Project - Learn How To Use Makefile Template)

  • درک پروژه و طراحی HL UnderstandingPROJECT & HL DESIGN

  • Project_Sourcecode_Explanation Project_Sourcecode_Explanation

  • کتابخانه ایستا - از الگو برای ایجاد Makefile برای ماژول کارمند استفاده کنید Static Library - Use Template To Create Makefile for Employee module

  • شی اشتراک گذاری شده - از الگو برای ایجاد Makefile برای ماژول DB_MGR استفاده کنید Shared Object - Use Template To Create Makefile for module DB_MGR

  • باینری اجرایی - از قالب makefile برای ایجاد فایل makefil برای UI استفاده کنید Binary Executable - Use makefile template to create makefile for UI

  • اجرا - رابط کاربری (نمایش خطای پیوند) Run - UI (Linking Error Demo)

  • رفع مشکل پیوند در MAC Fix Linking Issue In MAC

  • رفع مشکل پیوند در لینوکس Fix Linking Issue In Linux

آینده... Upcoming...

  • مفاهیم آینده Upcoming Concepts

ONE MAKEFILE برای ساخت پروژه با فراخوانی MAKEFILE های دیگر ONE MAKEFILE TO BUILD PROJECT BY CALLING OTHER MAKEFILES

  • نوشتن فایل معمولی WRITING COMMON MAKEFILE

  • Export Inside Terminal برای اینکه باینری کار کند Export Inside Terminal To make the binary work

  • Export Inside Makefile Export Inside Makefile

  • نکات راه اندازی CROSSCOMPILER برای C & CPP CROSSCOMPILER SETUP TIPS FOR C & CPP

بیایید Makefile خود را بهینه کنیم (کارکردها و الگوها) Let's Optimize Our Makefile(Functions & Patterns)

  • چرا الگوها و توابع (بیانیه مشکل توضیح داده شده است) Why Patterns & Functions(Problem Statement Explained)

  • درک FUNCTION&PATTERN Understanding FUNCTION&PATTERN

  • نسخه نمایشی زنده - فایل های منبع را شناسایی کنید و نام فایل های Obj و باینری را تعیین کنید Live Demo - Detect Source Files & Determine Obj&binary file names

  • LIVE_DEMO-ساده ساختن همه فایل‌های CPP LIVE_DEMO-Simple Make To Build All CPP Files

  • Generate ObjectFilesWithBinaries GenerateObjectFilesWithBinaries

  • OptimizeMakefile-Obj-GenerationFailed-I OptimizeMakefile-Obj-GenerationFailed-I

  • OptimizeMakefile-Obj-GenerationSUCCESS-II OptimizeMakefile-Obj-GenerationSUCCESS-II

  • DB_MGR بهینه‌سازی فایل میک با استفاده از الگوها (پرش نکنید) DB_MGR OPTIMIZED Makefile Using Patterns(Don't Skip)

  • ساخت فایل ماژول های UI و EMPLOYEE را بهینه کنید (پرش نکنید) OPTIMIZE MAKEFILE OF UI and EMPLOYEE modules (DON'T SKIP)

  • I-Optimise_common_makefile-PLANNING I-Optimise_common_makefile-PLANNING

  • II-OCM-WhatCanBeOptimisedInOldMakefile II-OCM-WhatCanBeOptimisedInOldMakefile

  • III-OCM-UserDefinedFunction III-OCM-UserDefinedFunction

  • IV-OCM-Why2TimesMakeRun IV-OCM-Why2TimesMakeRun

  • <<می توان رد شد>>نمونه نمایشی V-OCM-LIVE OF 2 Times MAKE RUN( <<CAN SKIP>>V-OCM-LIVE DEMO OF 2TIMES MAKE RUN(

  • VI-OCM-Makefile را فقط یک بار اجرا کنید VI-OCM-Run Makefile Only Once

  • سعی کنید پروژه نهایی را بسازید. Try to build the final project.

  • LIVE DEMO-Linux LIVE DEMO-Linux

  • 45-S11-L01-TipsForCProgramers2020-11-07 در ساعت 7.35.19 صبح 45-S11-L01-TipsForCProgramers2020-11-07 at 7.35.19 AM

نمایش نظرات

GNU Make & Makefile برای ساخت پروژه های C/C++ (LINUX,MAC)[2024]
جزییات دوره
4.5 hours
67
Udemy (یودمی) Udemy (یودمی)
(آخرین آپدیت)
1,926
4.6 از 5
دارد
دارد
دارد
جهت دریافت آخرین اخبار و آپدیت ها در کانال تلگرام عضو شوید.

Google Chrome Browser

Internet Download Manager

Pot Player

Winrar

Subrata Kumar Swain Subrata Kumar Swain

توسعه دهنده C++ از 18 سال به بالا